#include <stdio.h>
#include <stdlib.h>
#include "piece.h"
#include "couptour.h"
#include "echiquier.h"

void couptour (int echiquier[8][8], struct piece piec, int tabretourpiece[30][2],int &nbrecoup)
/*idem a coupdame uniquement avec les coordonnées horizontales et verticales*/
{
   int deplbas,deplhaut,depldroite,deplgauche;
   deplbas=deplhaut=depldroite=deplgauche=1;



 if (echiquier[piec.ligne][piec.colonne]>0)

         {

            while (echiquier[piec.ligne][piec.colonne+deplhaut]<=0 && piec.colonne+deplhaut < 8 && piec.colonne >= 0 && piec.ligne<8 && piec.ligne>= 0)
            {


                    tabretourpiece[deplhaut-1][0]= piec.ligne;
                    tabretourpiece[deplhaut-1][1]= piec.colonne+deplhaut;
                    deplhaut++;
                     if (echiquier[piec.ligne][piec.colonne+deplhaut-1]<0)
                     {
                         break;
                     }


            }
            deplhaut--;

            while (echiquier[piec.ligne][piec.colonne-deplbas]<=0 && piec.colonne < 8 && piec.colonne-deplbas >= 0 && piec.ligne<8 && piec.ligne>= 0)
            {
                tabretourpiece[deplhaut+deplbas-1][0]= piec.ligne;
                tabretourpiece[deplhaut+deplbas-1][1]= piec.colonne-deplbas;

                deplbas++;
                if (echiquier[piec.ligne][piec.colonne-deplbas+1]<0)
                     {
                         break;
                     }

            }
            deplbas--;
            while (echiquier[piec.ligne+depldroite][piec.colonne]<=0 && piec.colonne < 8 && piec.colonne >= 0 && piec.ligne+depldroite <8 && piec.ligne>= 0)
            {
               tabretourpiece[deplhaut+deplbas+depldroite-1][0]= piec.ligne+depldroite;
               tabretourpiece[deplhaut+deplbas+depldroite-1][1]=piec.colonne;
               depldroite++;
               if (echiquier[piec.ligne+depldroite-1][piec.colonne]<0)
                     {
                         break;
                     }

            }
            depldroite--;
            while (echiquier[piec.ligne-deplgauche][piec.colonne]<=0 && piec.colonne < 8 && piec.colonne >= 0 && piec.ligne<8 && piec.ligne-deplgauche >= 0)
            {
                tabretourpiece[deplhaut+deplbas+depldroite+deplgauche-1][0]= piec.ligne-deplgauche;
                tabretourpiece[deplhaut+deplbas+depldroite+deplgauche-1][1]= piec.colonne;
                deplgauche++;
                if (echiquier[piec.ligne][piec.colonne-deplgauche+1]<0)
                     {
                         break;
                     }

            }
         }




         else
         {
            while (echiquier[piec.ligne][piec.colonne+deplhaut]>=0 && piec.colonne+deplhaut < 8 && piec.colonne >= 0 && piec.ligne<8 && piec.ligne>= 0)
            {


                    tabretourpiece[deplhaut-1][0]= piec.ligne;
                    tabretourpiece[deplhaut-1][1]= piec.colonne+deplhaut;
                    deplhaut++;
                     if (echiquier[piec.ligne][piec.colonne+deplhaut-1]>0)
                     {
                         break;
                     }


            }
            deplhaut--;

            while (echiquier[piec.ligne][piec.colonne-deplbas]>=0 && piec.colonne < 8 && piec.colonne-deplbas >= 0 && piec.ligne<8 && piec.ligne>= 0)
            {
                tabretourpiece[deplhaut+deplbas-1][0]= piec.ligne;
                tabretourpiece[deplhaut+deplbas-1][1]= piec.colonne-deplbas;

                deplbas++;
                if (echiquier[piec.ligne][piec.colonne-deplbas+1]>0)
                     {
                         break;
                     }

            }
            deplbas--;
            while (echiquier[piec.ligne+depldroite][piec.colonne]>=0 && piec.colonne < 8 && piec.colonne >= 0 && piec.ligne+depldroite <8 && piec.ligne>= 0)
            {
               tabretourpiece[deplhaut+deplbas+depldroite-1][0]= piec.ligne+depldroite;
               tabretourpiece[deplhaut+deplbas+depldroite-1][1]=piec.colonne;
               depldroite++;
               if (echiquier[piec.ligne+depldroite-1][piec.colonne]>0)
                     {
                         break;
                     }

            }
            depldroite--;
            while (echiquier[piec.ligne-deplgauche][piec.colonne]>=0 && piec.colonne < 8 && piec.colonne >= 0 && piec.ligne<8 && piec.ligne-deplgauche >= 0)
            {
                tabretourpiece[deplhaut+deplbas+depldroite+deplgauche-1][0]= piec.ligne-deplgauche;
                tabretourpiece[deplhaut+deplbas+depldroite+deplgauche-1][1]= piec.colonne;
                deplgauche++;
                if (echiquier[piec.ligne][piec.colonne-deplgauche+1]>0)
                     {
                         break;
                     }


         }
         }

            deplgauche--;
        nbrecoup=deplhaut+deplbas+depldroite+deplgauche;
}
